package com.fuhe.chen.vendingmachine.service;

import com.fuhe.chen.vendingmachine.dto.CommodityInMachine;
import com.fuhe.chen.vendingmachine.dto.ItemInMachine;
import com.fuhe.chen.vendingmachine.dto.cond.CommodityCond;
import com.fuhe.chen.vendingmachine.pojo.*;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * 商品服务层
 */
public interface ICommodityService {

    /**
     * 将待支付订单的商品信息加入缓存中
     * @param commoditySolds
     */
    void addCommoditySoldToCache(String tradeNo, Map<ItemInMachine,Integer> commoditySolds, String machineId);

    /**
     * 查询所有已上架商品信息
     * @return
     */
    List<Commodity> queryAllOnSale();


    /**
     * 查询商品信息(分页)
     * @param pageNum
     * @param size
     * @return
     */
    PageInfo<Commodity> queryCommodityByCondition(CommodityCond cond, int pageNum, int size);


    /**
     * 查询单个商品信息
     * @param id
     * @return
     */
    Commodity queryOne(Integer id);

    /**
     * 添加商品信息
     * @param commodity
     */
    String addCommodity(Commodity commodity);

    /**
     * 修改商品信息
     * @param commodity
     */
    void updateCommodity(Commodity commodity);

    /**
     * 删除商品信息
     * @param commodityId
     */
    void deleteCommodity(Integer commodityId);


    /**
     * 根据 商品营销标签id 分页获取 商品信息列表
     * @param labelId
     * @param pageNum
     * @param pageSize
     * @return
     */
     PageInfo<Commodity> findCommodityPageByLabel(Integer labelId,int pageNum,int pageSize) ;
}
